#pragma once

#include "Testable.h"

#include <vector>

using namespace AllTing;

namespace AllTing
{

namespace Test
{

class TestCase : public Testable
{
public:
	TestCase(const Char* pszName, const Bool bSelect=true, const Bool bStopOnFailed=false) : Testable(pszName, bSelect, bStopOnFailed)
	{
	}
	virtual ~TestCase();
	
	virtual const Testable* At(UInt32 nIndex);

	virtual Bool Run();
	virtual void Add(Testable* pTest);
	virtual TestIterator Remove(Testable* pTest);

	UInt32 Size() const;
protected:
	Tests	vTests_;
};


}	//namespace Test

}	//namespace AllTing